The present invention relates to automated systems and processes which are operated to manufacture goods or to generate services under the control of one or more digital computer systems. The invention also relates to digital computer operated systems which simulate system or process operations. The present invention further relates to digital computer systems which are used to monitor system apparatus and to act as a communications link between system apparatus and supervisory personnel. More particularly, the present invention is directed to systems which include apparatus connected to a digital computer system by an interface system ahd which further include provision for automatically establishing a system or process operating configuration through the use of automated computer programming techniques.
The use of digital computers in system monitoring and control has revolutionized the whole field of systems engineering. While solving many of the problems which faced systems engineers of the past, computers have introduced a host of new problems for present day systems engineers. As will subsequently become more apparent herein, the present invention provides improved solutions to the more serious problems which face a systems engineer when he employs a digital computer for monitor and control purposes in a system to be operated for production or other end purposes.
In a typical industrial system, literally hundreds of monitoring and control functions may have to be carried out. In an electrical power generating system, for example, it may be necessary to monitor hundreds of signals generated by sensor components associated with the power generation apparatus and representing temperatures, pressures, voltages, currents, and other system parameters. It may also be necessary to supply control signals to motor driven valves, electrical controls, relays, motors, and other system control components.
Prior to development of the modern digital computer, monitoring and control equipment usually was constructed entirely from independent hardware components. For monitoring, system parameter sensing components were connected singly or in groups to visual display meters and to recording meters. For alarm monitoring, the signal outputs of system sensors were usually fed into alarm devices which could sound an alarm when a system parameter indicated a system abnormality. For automatic control, signals generated by one or more system parameter sensing components were connected by hardware controllers to system control components in one or more control loops.
In control applications where the on/off control of apparatus depended only or primarily upon the status of system contacts or switches, customized digital logic circuits typically were constructed to accept as input signals a plurality of contact closure or switch input signals, to operate logically upon these input signals, and to generate contact closure output signals to control directly the system apparatus in accordance with the hardward logic. A typical system might have included a large number of logic circuits interconnected with the system apparatus and with each other to form a highly complex hardware logic director or logic sequencer system.
A primary disadvantage of these hardware arrangements is their inflexibility. Once a hardware monitoring or control system is assembled, changes may only be made by shutting down the system and rewiring the hardware into a new configuration or by the addition of supplemental hardware. Another disadvantage of these hardware arrangements is the high cost of having a separate hardware device to carry out each monitoring and control function.
Both the inflexibility and the cost disadvantages of hardware arrangements may be overcome through the use of a digital computer, assuming there is a sufficient duty assignment of monitor and/or control functions to provide an economic justification for digital computer usage. Digital computers may be reprogrammed to handle changes in a system configuration. A single digital computer may be programmed to carry out a wide number of different control functions and thus has the potential to replace literally thousands of independent hardware devices with a single, compact unit. While digital computers are not typically as rapid in their operations as are some hardware devices, the vast majority of control applications do not require extremely high execution speeds.
In adapting a digital computer system to monitoring and control system applications, certain provisions are usually made in the structure of the computer system and in the programming or "software" which resides within the computer. With regard to the computer system structure, it is usually necessary to provide an input interface subsystem for the computer so that signals generated by sensors associated with system apparatus may be fed into the computer in the case of either a monitoring or a control system, and it is necessary to provide an output interface subsystem for the computer so that internally generated signals within the computer may be fed back to the system apparatus in the case of a control system. The input and output interface subsystems further provide operator and programmer interface through panelboard switches and through communication devices. It is also necessary to enable the computer to allow predefined external events to interrupt normal computer operations so that the computer may respond quickly to sudden changes in the system.
With regard to the program system or "software", the process control executive program differs from the conventional control or executive program of a general purpose computer particularly in that it includes a scheduling program or an executive scheduler which may accept real time bids for the execution of jobs or tasks and which then may execute the jobs or tasks in accordance with assigned priorities. A digital computer system which includes most or all of the provisions just considered may be called a process control computer system and is the type of computer system most related to the present invention. The term "process control computer system" as used herein is applicable to a computer that is used for monitoring system variables without actually controlling a system or process as well as to a computer that directly controls the apparatus used in the operation of a system or process.
Soon after digital computers were introduced into the fields of system monitoring and system control, it was found that the task of structuring a system for process operations under computer monitoring or control, i.e. the task of adapting a process control computer system to a particular plant system or the like, was one which often required many man-years of programming effort by skilled computer programmers. It was found that half the cost of a process control computer system often went into the production of programs which were custom-tailored to a particular system or process. With so large a proportion of the computer system cost going into programming, workers in the systems engineering field directed their efforts at an early date towards the development of techniques which enable automation of the programming of process control computer systems and the structuring of systems or processes into operational entities. A long-term objective of workers in this field is to enable instructions written out by a systems engineer who is not necessarily a skilled computer programmer to be quickly and efficiently converted into an operative set of computer programs which configure a monitoring/control system and the system or process it is associated with when the instructions are fed into a process control computer in the monitoring/control system.
The first efforts in the direction of automatic programming have led to the development of what are now commonly called "fill-in-the-blank programming systems". These systems were originally developed to simplify the complicated process of generating programs to perform elaborate data monitoring tasks and were later extended so that the same basic approach could be used to implement simple control strategies, such as simple control feedback loops. A relatively thorough discussion of this type of system may be found in the article "Process Control Software" by Herbert E. Pike, Jr. which appears in the PROCEEDINGS OF THE IEEE, Volume 58, Number 1, published in January of 1970 beginning on page 87.
A major drawback of these and other existing programming systems is their inability to assemble a fast, efficient, digital-computer-implemented logic director or sequencer. A hardware logic director responds almost instantly to any change in its input signals by generating a new set of output signals. A conventional computer system can only approach simulating this behavior if all logic director programs for adjusting the system output signals are executed in response to any change in the system input signals. No program may be omitted, since in a complex system many programs are somewhat interrelated, and the execution of one may affect the execution of another. It is therefore necessary periodically to execute a large number of programs most of which merely check to ascertain that nothing needs to be done.
However, even executing all of the programs in such as system may not produce a proper response, since the signal outputs which are adjusted by one program may also be used as signal inputs to some other program. For this reason, it is typically necessary to run continuously and periodically all of the programs which are used in implementing a logic director system. In response to a change in an input signal, the computer system may have to run all of these programs two or three or more times before an equilibrium set of output signals is achieved. While all programs have to be run so as to insure that all of the signal outputs have been adjusted, typically only a very few of the programs actually cause new output signals to be generated during any given program execution period. A highly inefficient and a relatively slow and ponderous digital system thus results in which the computer spends most of its time assuring itself that all is well.
Another major deficiency of existing fill-in-the-blank programming systems is that they lack any systematic way of first establishing, and of later altering a digital computer logic director or sequencer configuration. Existing systems provide for the establishment and the alteration of monitoring system which periodically scan logical (or Boolean) signal inputs, but they do not automate the establishment within a computer system of the programs which respond to these logical signal inputs and which cause appropriate changes to be made in the logical (or Boolean) signal outputs of the system. Hence, these programs typically must be written out by skilled programmers working together with application or systems engineers. These programs also have to be established as operative entities within the computer system. Lacking any better technique for controlling the execution of such programs, it has been customary to arrange for their periodic execution or to have all such programs run in response to any change in the system input signals.
No means have previously been provided whereby such a system could be altered after it has once been established. It has heretofore been impossible or very difficult for one other than a skilled programmer to make even minor modifications to such a system, and it has been impossible to make major changes in such a system on-line (while the system is operating) in any simple manner. No prior logic director system, whether implemented by using hardware or software, has ever been designed so that it could be easily modified, especially by someone who did not originally establish the system and who is not necessarily skilled in programming.
Because of the just mentioned deficiencies of prior art software-implemented logic directors or sequencers, conventional hardware logic director systems are still widely used in industry. The construction of hardware logic director systems has now been automated to the point where a computer may be used to design and to implement the hardware logic director circuitry under the control of conventional symbolic logic equations presented to the computer in machine readable form, and typically written in a FORTRAN IV-like logical language. Hardware logic directors are extremely fast and may operate independently of other system elements. The primary disadvantage of hardware logic directors is that they cannot be easily altered, and usually must be replaced in their entirety, whenever changes in a control configuration are made. They also are not easily interfaced with other sections of a computer controlled monitoring or process control system.